// projects/oa/pages/my_module/fav/my_fav.js
// 导入路径辅助模块，避免重复引用
const pathImport = require('../helpers/path_import.js');
const { pageHelper, cloudHelper } = pathImport;;
const ProjectBiz = require('../../../comm/biz/project_biz.js');
// 引入MobX相关
const { createStoreBindings } = require('../../../../../miniprogram_npm/mobx-miniprogram-bindings/index');
// 修正导入路径，使用modules路径
const { userStore } = require('../../../../../store/modules/user/index.js');
const { favStore } = require('../../../../../store/global/fav_foot.js');

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		isLoad: false
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad(options) {
		// 创建MobX绑定
		this.storeBindings = createStoreBindings(this, {
			store: userStore,
			fields: ['isLogin', 'user'],
			actions: ['init']
		});
		
		// 创建收藏MobX绑定
		this.favStoreBindings = createStoreBindings(this, {
			store: favStore,
			fields: ['favList', 'loading'],
			actions: ['loadFavList', 'deleteFav']
		});

		// 初始化用户状态
		this.init();
		
		// 页面初始化
		ProjectBiz.initPage(this);
		
		// 加载收藏数据
		this._loadFavList();
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady() {
		ProjectBiz.initPage(this);
	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow() {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide() {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload() {
		// 清理MobX绑定
		this.storeBindings.destroyStoreBindings();
		this.favStoreBindings.destroyStoreBindings();
	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: async function() {
		await this._loadFavList(true);
		wx.stopPullDownRefresh();
	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function() {

	},

	url: function(e) {
		pageHelper.url(e, this);
	},

	myCommListListener: function(e) {
		pageHelper.commListListener(this, e);
	},

	bindDelTap: async function(e) {
		let oid = e.currentTarget.dataset.oid;
		if (!oid) return;
		
		let that = this;
		let callback = async function() {
			// 使用MobX中的deleteFav方法删除收藏
			const result = await that.deleteFav(oid);
			if (result) {
				pageHelper.showSuccToast('删除成功');
			}
		}
		
		pageHelper.showConfirm('您确认删除？', callback);
	},

	_loadFavList: async function(isRefresh = false) {
		if (!this.data.isLogin) {
			this.setData({
				isLoad: true
			});
			return;
		}

		try {
			this.setData({
				isLoad: false
			});

			// 使用MobX中的loadFavList方法加载数据
			await this.loadFavList(isRefresh);
			
			this.setData({
				isLoad: true
			});
		} catch (err) {
			console.error('加载收藏列表失败', err);
			this.setData({
				isLoad: true
			});
		}
	}
})